﻿#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <string>
using namespace std;
#include <algorithm>
//int main()
//{
//	/*vector <vector<int>> vv;
//	int a[3] = { 1,2,3 };
//	vv.push_back(3,a[3]);*/
//	/*vector <int> v = { 1,3,5,4,7 };
//	sort(v.begin(), v.end());
//	for (auto i : v)
//	{
//		cout << i << endl;
//		i++;
//	}*/
//	/*string s;
//	char arr[] = "fff";
//	s.push_back(arr[5]);*/
//	char* arr;
//	cin >> arr;
//	cout << arr << endl;
//	return 0;
//}

//int main() {
//    vector <int> a;
//    int num = 0;
//    int sum = 0;
//    cin >> num;
//    int flag = num;
//    num *= 3;
//    while (num--)
//    {
//        int l = 0;
//        cin >> l;
//        a.push_back(l);
//    }
//    sort(a.begin(), a.end());
//    for (auto i : a)
//    {
//        cout << i << ' ';
//        i++;
//    }
//    int k = a.size() - 1;
//    while (flag--)
//    {
//        sum += a[k-1];
//        k -= 2;
//    }
//    cout << sum;
//    return 0;
//}

//int main()
//{
//	/*vector<int> v[10000] = { 0 };
//	vector<int> v2[10] = { 1,2,3,4,5 };*/
//	vector<int> v(10001, 0);
//	
//
//
//	return 0;
//}

//#include<iostream>
//#include<cstdio>
//using namespace std;
//int main() {
//	int m = 0123, n = 123;
//	printf("%o %o\n", m, n);
//	return 0;
//}

//int main() {
//    vector<int> v;
//    for (int i = 0; i < 4; i++)
//    {
//        int k = 0;
//        cin >> k;
//        v.push_back(k);
//    }
//    if ( 2*v[2] ==  (v[0] + v[1] + v[2] + v[3]))
//    {
//        cout << (v[0] + v[2]) / 2 << (v[1] + v[3]) / 2 << v[3] - (v[1] + v[3]) / 2;
//    }
//    else {
//        cout << "NO";
//    }
//    return 0;
//}

//int main() {
//    /*vector<int> v;
//    int num = 0;
//    cin >> num;
//    int k = 0;
//    cin >> k;
//    while (num / k != 0)
//    {
//        v.push_back(num % k);
//        num = num / k;
//    }
//    v.push_back(num);
//    vector<int>::reverse_iterator  it;
//    for (it = v.rbegin(); it != v.rend(); it++)
//    {
//        cout << *it;
//    }*/
//    int x = 1;
//    do {
//        printf("%2d\n", x++);
//    } while (x--);
//    return 0;   
//}
//
//#include <iostream>
//using namespace std;
//char fun(char x, char y) {
//    if (x < y)
//        return x;
//    return y;
//}
//int main() {
//    int a = '1', b = '1', c = '2';
//    cout << fun(fun(a, b), fun(b, c));
//    return 0;
//}

//int main() {
//    string s;
//    cin >> s;
//    char a;
//    cin >> a;
//    int k = 0;
//    int num = 0;
//    string::iterator it = s.begin();
//    for (; it != s.end(); it++)
//    {
//        k = 1;
//        s.insert(it, a);
//        int size = s.size();
//
//        for (int i = 0; i < size / 2; i++)
//        {
//            if (s[i] != s[size - i - 1])
//            {
//                k *= 0;
//            }
//        }
//        if (k != 0)
//        {
//            num++;
//        }
//        s.erase(it,it+1);
//    }
//    return 0;
//}

//int main()
//{
//	string s = "heihei";
//	string::iterator it = s.begin();
//	s.erase(it, it + 1);
//	cout << s << endl;
//
//	return 0;
//}

//#include < iostream> 
//#define SQR(A) A*A
//int main() {
//    int x = 6, y = 3, z = 2;
//    x /= SQR(y + z) / SQR(y + z);
//    cout << SQR(y + z) / SQR(y + z) << endl;
//    cout << x << endl;
//    return 0;
//}

//int main()
//{
//	int* p;
//	cout << sizeof(p);
//	int I = 1;
//	if (I <= 0)
//		printf("****\n");
//	else
//		printf("%%%%\n");
//	return 0;
//}

//vector<vector<int>> threeSum(vector<int>& nums)
//{
//    vector<vector<int>> a;
//    sort(nums.begin(), nums.end());
//    int end = nums.size();
//    for (int i = 0; i < end;i++)
//    {
//        int target = -nums[i];
//        int left = i + 1;
//        int right = end - 1;
//        if (nums[left] + nums[right] > target)
//        {
//            --right;
//        }
//        else if (nums[left] + nums[right] < target)
//        {
//            ++left;
//        }
//        else
//        {
//            a.push_back({ nums[i],nums[left],nums[right] });
//            while (nums[left] == nums[left + 1]&&left<right)
//            {
//                ++left;
//            }
//            while (nums[right] == nums[right - 1] && left < right)
//            {
//                --right;
//            }
//        }
//    }
//    return a;
//}

//vector<vector<int>> threeSum(vector<int>& nums)
//{
//    vector<vector<int>> ret;
//    // 1. 排序
//    sort(nums.begin(), nums.end());
//    // 2. 利⽤双指针解决问题
//    int n = nums.size();
//    for (int i = 0; i < n; ) // 固定数 a
//    {
//        if (nums[i] > 0) break; // ⼩优化
//        int left = i + 1, right = n - 1, target = -nums[i];
//        while (left < right)
//        {
//            int sum = nums[left] + nums[right];
//            if (sum > target) right--;
//            else if (sum < target) left++;
//            else
//            {
//                ret.push_back({ nums[i], nums[left], nums[right] });
//                left++, right--;
//                // 去重操作 left 和 right
//                while (left < right && nums[left] == nums[left - 1]) left++;
//                while (left < right && nums[right] == nums[right + 1])
//                    right--;
//        }
//        // 去重 i 
//        i++;
//        while (i < n && nums[i] == nums[i - 1]) i++;
//    }
//    return ret;
//}
//int main()
//{
//    vector<int> b = {0,0,0 };
//    threeSum(b);
//
//    return 0;
//}